Клітинні автомати та комп`ютерна екологія

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

А. Колесніков

Третій Ангол, і впала з неба велика зірка, палаючи, як смолоскип, і впала на третину річок та на водні джерела. А ймення зорі полин, і третя частина вод стала полином, і багато людей повмирали з води, тому що вони стали гіркі.

Одкровення Святого Іоанна Богослова, гл. 8, ст. 10,11

Хтось точно підмітив, що розмова про погоду стає цікавим лише при перших ознаках кінця світу. Сьогодні вчені і політики обговорюють проблеми погоди на глобальних форумах, та й прості люди починають потихеньку цікавитися погодою, причому не тільки на найближчі вихідні, а й взагалі ... Атмосфера - величезна, складна, розподілена, динамічна система. Передбачати її поведінка надзвичайно важко, часто просто неможливо. Дивлячись на висять у небесній блакиті хитромудрі хмарні структури, ми не завжди замислюємося про те, наскільки масштабні і драматичні процеси відбуваються там, у височині. Зовсім інше враження залишає прискорена зйомка хмарного неба. Зображення еволюції рояться хмарних мас мимоволі наводить на роздуми про природу часу і сенс земного існування. Схожі, але більш тривожні думки навівають кадри, що зображують розповзання смогу над великими мегаполісами або, гірше того, поступової дифузії ядерного гриба ... Всі ми пам'ятаємо старі чорно-білі навчальні фільми, що розповідають про формування зон зараження після атомного вибуху. Вони класифікуються за ступенем небезпеки. Поблизу епіцентру розташовується "мертва" зона суцільного інтенсивного зараження. Далі, в залежності від напрямку вітру, зони розподіляються у вигляді вкладених один в одного еліпсоїдів розсіювання. У принципі, схожої буде картина розповсюдження і будь-якого іншого забруднювача від точкового джерела, наприклад, від димить труби, реактора, що вибухнув або апокаліптичної зірки з біблійного пророцтва. Процес поширення забруднювача в атмосфері - це процес розсіювання і змішування його частинок з частинками повітря. На хід цього процесу істотний вплив роблять власні руху повітряних мас, тобто вітру. В одній і тій же місцевості вони дмуть в різних напрямках з певною частотою. Дані про частоти вітрів наносяться на особливу діаграму, що має романтичну назву, оспіване у безлічі бардівських пісень, - троянда вітрів. Частинки забруднювача потрапляють від первісного джерела в сусідні області. Потім з областей, що безпосередньо прилягають до джерела, поширюються вже в їх околицях, і так далі. Сам характер цього процесу вказує на те, що для моделювання розсіювання забруднювача в атмосфері можна використовувати підхід, заснований на ідеології клітинних автоматів. У цьому випадку досліджувану ділянку представляється у вигляді клітинного поля. На полі позначаються клітини, в яких знаходяться епіцентри поширення забруднення або зараження. Потім концентрацію забруднювача в кожній клітині поля можна, наприклад, наближено оцінювати за формулою:

(1)

де ak - це масив з дев'яти елементів, що містить ймовірності вітрів відповідних восьми напрямків і ймовірність штилю. Само собою зрозуміло, що дев'ять ймовірностей вітрів різних напрямків, включаючи вірогідність штилю, повинні в сумі давати одиницю. C * k - це вектор з дев'яти елементів, що містить концентрації забруднювача в сусідніх з даною восьми клітинах і в ній самій. Крок за кроком для всіх клітин поля обчислюється сума творів концентрацій у сусідніх восьми осередках на відповідні ймовірності вітрів. До суми додається ще й твір ймовірності штилю на концентрацію забруднювача в самій поточної клітинці. Для нормальної роботи програми необхідно мати дві копії клітинного поля. В одній з копій слід зберігати попереднє покоління, а в іншій - наступне. При зміні поколінь вміст наступного покоління стає попереднім. З розрахунків виключаються крайні ряди осередків. Це робиться для того, щоб уникнути "прикордонних" проблем при застосуванні формули (1). Повторюючи розрахунки багаторазово, ми можемо спостерігати динаміку формування еліпсоїдів розсіювання в часі. При разовому "впорскуванні" забруднювача в яку-небудь клітинку він швидко розсмоктується по клітинному масиву. Для отримання більш виразною картини розсіювання в пропонованому на урізанні фрагменті програмного коду "уприскування" забруднювача у відповідні комірки здійснюється на початку розрахунку кожного чергового покоління. Значення концентрацій викидів вводяться в комірки в якихось довільних одиницях.

Для сприйняття результатів моделювання важлива розфарбування клітин. У наведеному фрагменті програмному використаний алгоритм, що переводить значення концентрацій забруднювача в різні градації яскравості кольорів - від темно-червоного до темно-зеленого. При цьому високі значення концентрацій зображуються відтінками червоного, який, в міру зниження Z, переходить в жовтий, а потім поступово загасає до темно-зеленого кольору.

Звичайно, для по-справжньому точних моделей процесів розсіювання атмосферних забруднювачів слід звертатися до набагато більш прецизійним методиками, ніж та, про яку йшла мова. Але все ж у даному випадку вам немає необхідності вирішувати головоломну систему запаморочливих диференціальних рівнянь в приватних похідних на суперкомп'ютері астрономічної вартості. За допомогою цієї нескладної програмки ви можете виконати якесь невелике цікаве мініісследованіе з комп'ютерного моделювання екологічної ситуації у вашому районі, місті або області в межах часових рамок однієї лабораторної роботи.

DefByte IK

DefInt LN

Dim G As Byte

Dim a (1 To 9) As Single

Dim b (1 To 200, 1 To 200) As Single

Dim c (1 To 200, 1 To 200) As Single

Dim Color As Long

Dim Zmin As Single

Dim Zmax As Single

Dim R As Single

Dim R4 As Single

Dim Z14 As Single

Dim Z24 As Single

Dim Z34 As Single

Private Sub Form_Click ()

a (1) = 0.05

a (2) = 0.05

a (3) = 0.1

a (4) = 0.1

a (5) = 0.1

a (6) = 0.1

a (7) = 0.1

a (8) = 0.15

a (9) = 0.25

z = 7

Zmin = 0

Zmax = 2

R = Zmax - Zmin

R4 = R / 4

Z14 = Zmin + R4

Z24 = Z14 + R4

Z34 = Z24 + R4

n = 50

G = 50

For f = 1 To G

b (35, 35) = z

b (45, 15) = z / 2

For i = 2 To n - 1

For j = 2 To n - 1

c (i, j) = 0

k = 0

For l = -1 To 1

For m = -1 To 1

k = k + 1

c (i, j) = c (i, j) + a (k) * b (i + l, j + m)

Next m

Next l

Next j

Next i

For i = 1 To n

For j = 1 To n

Color = SetColor (c (i, j))

Line (6 * (i - 1), 6 * (j - 1)) - (6 * i - 1, 6 * j - 1), Color, BF

b (i, j) = c (i, j)

Next j

Next i

Next f

End Sub

Public Function SetColor (z As Single) As Long

Dim t As Byte

Select Case z

Case Is <Zmin

SetColor = RGB (0, 63, 0)

Case Zmin To Z14

t = 63 + 192 * (z - Zmin) / R4

SetColor = RGB (0, t, 0)

Case Z14 To Z24

t = 255 * (z - Z14) / R4

SetColor = RGB (t, 255, 0)

Case Z24 To Z34

t = 255 * (1 - (z - Z24) / R4)

SetColor = RGB (255, t, 0)

Case Z34 To Zmax

t = 63 + 192 * (1 - (z - Z34) / R4)

SetColor = RGB (t, 0, 0)

Case Is> Zmax

SetColor = RGB (63, 0, 0)

End Select

End Function

Додати в блог або на сайт

Цей текст може містити помилки.

Виробництво і технології | Реферат
13.5кб. | скачати


Схожі роботи:
Комп`ютерна злочинність і комп`ютерна безпека
Комп ютерна технологія графогеометричного моделювання Взаємозвязок 2D 3D комп ютерної графіки
Комп ютерна технологія графогеометричного моделювання Взаємозвязок 2D 3D комп ютерної графіки
Злочини у сфері комп`ютерної інформації 2 Комп`ютерна злочинність
Комп`ютерна томографія
Комп`ютерна лінгвістика
Комп ютерна графіка 2
Комп`ютерна алергія
Комп`ютерна графіка
© Усі права захищені
написати до нас